#ifndef XGE_XVERSION_H_
#define XGE_XVERSION_H_
#include "xge_common_config.h"
#include "xstring.h"


namespace xge{
  namespace xge_internal{

    // Version class to identify the software version and plug-in version
    class XVersion {
    public:
      typedef unsigned char_t tint_t;
      tint_t domain_version() const {
        return domain_version_;
      }
      tint_t sub_version() const {
        return sub_version);
      }
      tint_t add_version() const {
        return add_version_;
      }
      const XString& version_string() const {
        return version_string_;
      }
    public:
      XVersion( const XString& version_string );
      XVersion( tint_t domain , tint_t sub , tint_t add );
    private:
      void Parse( const XString& version_string );
      void Parse( tint_t domain, tint_t sub , tint_t add );
    private:
      const XString version_string_;
      tint_t domain_version_ , sub_version_ , add_version_ ;
    };

  }// namespace xge_internal
}// namespace xge


#endif// XGE_XVERSION_H_